After the tab view hides or shows (including when the chat window first opens, if...
[adiumx.git] / Plugins / Dual Window Interface / AIMessageViewController.h
blob7942bf6c909519807cde06acfb624431d6c83600
1 /*
2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
4 *
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11 * Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #import "ESChatUserListController.h"
18 #import "AISideSplitView.h"
19 #import "KNShelfSplitView.h"
20 #import <Adium/AIInterfaceControllerProtocol.h>
22 @class AIAccount, AIListContact, AIListObject, AIAccountSelectionView, AIMessageTabSplitView, AIMessageEntryTextView;
23 @class AIMessageWindowController;
25 @interface AIMessageViewController : AIObject <AIListControllerDelegate> {
26 IBOutlet NSView *view_contents;
28 //Split views
29 IBOutlet AIMessageTabSplitView *splitView_textEntryHorizontal;
32 //Message Display
33 NSView *controllerView_messages;
34 IBOutlet NSScrollView *scrollView_messages;
35 IBOutlet NSView *customView_messages;
37 //User List
38 IBOutlet AIAutoScrollView *scrollView_userList;
39 BOOL retainingScrollViewUserList;
40 IBOutlet AIListOutlineView *userListView;
41 ESChatUserListController *userListController;
43 //Text entry
44 IBOutlet NSScrollView *scrollView_outgoing;
45 IBOutlet AIMessageEntryTextView *textView_outgoing;
48 NSObject<AIMessageDisplayController> *messageDisplayController;
49 AIAccountSelectionView *view_accountSelection;
50 AIMessageWindowController *messageWindowController;
53 //widgetstrip
54 IBOutlet KNShelfSplitView *shelfView;
56 //menuitem
57 NSMenuItem * showHide;
59 AIChat *chat;
60 BOOL suppressSendLaterPrompt;
61 int entryMinHeight;
62 int userListMinWidth;
65 + (AIMessageViewController *)messageDisplayControllerForChat:(AIChat *)inChat;
66 - (void)messageViewWillLeaveWindowController:(AIMessageWindowController *)inWindowController;
67 - (void)messageViewAddedToWindowController:(AIMessageWindowController *)inWindowController;
68 - (AIChat *)chat;
70 - (AIListContact *)listObject;
71 - (AIListObject *)preferredListObject;
73 //Message Display
74 - (NSView *)view;
75 - (void)adiumPrint:(id)sender;
77 //Message Entry
78 - (IBAction)sendMessage:(id)sender;
79 - (IBAction)didSendMessage:(id)sender;
80 - (IBAction)sendMessageLater:(id)sender;
82 //Account Selection
83 - (void)redisplaySourceAndDestinationSelector:(NSNotification *)notification;
84 - (void)setAccountSelectionMenuVisibleIfNeeded:(BOOL)makeVisible;
86 //Text Entry
87 - (void)makeTextEntryViewFirstResponder;
88 - (void)clearTextEntryView;
89 - (void)addToTextEntryView:(NSAttributedString *)inString;
90 - (void)addDraggedDataToTextEntryView:(id <NSDraggingInfo>)draggingInfo;
92 //User List
93 - (void)setUserListVisible:(BOOL)inVisible;
94 - (BOOL)userListVisible;
96 //splitview
97 -(void)setupShelfView;
98 // -(void)collapseShelfView;
99 -(void)toggleUserlist:(id)sender;
101 - (void)tabViewDidChangeVisibility;
103 @end